Copious web contents in websites are created for online usage by users. However, there are many cases in which users want to use these web contents offline, i.e., after user terminals are disconnected from the network, so that web contents can be still available for the users. From the users' perspective, another advantage of offline usage of web contents lies in reducing network communication expense.
To meet demand for offline usage of web contents by the users, many web browsers have the capability to locally cache web contents for offline access. Browsers cache web contents based on navigation history and/or the expiration date of the accessed contents. In other words, most browsers can only provide the accessed (opened) web contents for offline usage.
On the other hand, some special-purpose clients (download tools) can also download web contents into client machines for offline usage. Users usually need to specify for these clients specific limiting conditions for retrieving web contents, and then clients will retrieve all web contents that meet these conditions. For example, users need to specify page entry points and page depth, so that the clients can start from the page entry points and download all pages within the page depth into the client machines for offline usages by users.
Another example of the above clients is a RSS (Really Simple Syndication) client. The RSS client allows users to specify a list of Uniform Resource Locators (URL), which are defined as channels. Then, the RSS client can get the contents to which these URLs are directed for offline usage. The RSS clients of this kind can only get one or specified layer of web contents but do not support random selection of web contents to form a certain web application and make it available for offline usage.
From the perspective of websites, their functions are to help users solve problems, for example, provide information on a certain subject, receive user input information on a certain subject, etc. These relevant web contents are usually associated with one another and spread in layers of different depth. According to the existing solution of providing web contents for offline usage, when users want to use these web contents offline, web contents to be used offline have to be accessed or specified on the browser or client side piece-by-piece, or all web contents in the same layer as these web contents have to be retrieved.
Therefore, the existing solution of retrieving or providing web contents is not quite flexible, and it is impossible to only retrieve useful web contents for a specific application in a convenient manner for offline usage. Moreover, all web contents should be consistent on the client side. When actions such as an update are needed, all contents should be updated at the same time. This makes the management (including creation, update and deletion) of offline web contents time-consuming and strenuous.